name: Update

on:
  watch:
    types: [started]
  schedule:
    - cron: 0,30 * * * *

env:
  TZ: Asia/Shanghai

jobs:
  Update:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v3

    - name: Delete workflow runs
      uses: Mattraks/delete-workflow-runs@v2
      with:
        retain_days: 0
        keep_minimum_runs: 3

    - name: GetTime
      id: date
      run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S CST')"

    - name: Update
      run: |
        # 央视源
        rm -f CCTV.m3u && wget https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/ipv6.m3u -O CCTV.m3u
        sed -i -n '/央视频道/,+1p' CCTV.m3u
        sed -i '1i #EXTM3U' CCTV.m3u
        sed -i '/^\s*$/d' CCTV.m3u

        # 卫视源
        rm -f CNTV.m3u && touch CNTV.m3u
        wget https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/ipv6.m3u -O CNTV1.m3u && sed -i -n '/卫视频道/,+1p' CNTV1.m3u
        wget https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/ipv6.m3u -O CNTV2.m3u && sed -i -n '/NewTV系列/,+1p' CNTV2.m3u
        wget https://raw.githubusercontent.com/fanmingming/live/main/tv/m3u/ipv6.m3u -O CNTV3.m3u && sed -i -n '/超清频道/,+1p' CNTV3.m3u
        cat CNTV1.m3u >> CNTV.m3u
        cat CNTV2.m3u >> CNTV.m3u
        cat CNTV3.m3u >> CNTV.m3u
        rm -f CNTV1.m3u CNTV2.m3u CNTV3.m3u
        sed -i '1i #EXTM3U' CNTV.m3u
        sed -i '/^\s*$/d' CNTV.m3u

        # 成人源
        rm -f Adult.m3u && wget http://adultiptv.net/chs.m3u -O Adult.m3u
        sed -i 's/XXX/成人频道/' Adult.m3u
        sed -i 's/AdultIPTV.net //g' Adult.m3u
        wget https://raw.githubusercontent.com/YanG-1989/m3u/main/Adult.m3u -O AdultVideo.txt
        sed -i -n '/日本/,+1p' AdultVideo.txt
        sed -i 's/日本/成人视频/' AdultVideo.txt
        echo '' >> Adult.m3u && cat AdultVideo.txt >> Adult.m3u
        rm -f AdultVideo.txt
        sed -i '/^\s*$/d' Adult.m3u

        # 整合源
        rm -f IPTV.m3u && touch IPTV.m3u
        cat CCTV.m3u >> IPTV.m3u
        cat CNTV.m3u >> IPTV.m3u
        cat Adult.m3u >> IPTV.m3u
        sed -i '/#EXTM3U/d' IPTV.m3u
        sed -i '1i #EXTM3U' IPTV.m3u
        sed -i '/^\s*$/d' IPTV.m3u

        # 节目源
        rm -f EPG.xml && wget https://epg.112114.xyz/pp.xml -O EPG.xml
        echo "Auto Update IPTV in ${{ steps.date.outputs.date }}" > README.md

    - name: Clean
      run: |
        git config --local user.email "actions@github.com"
        git config --local user.name "GitHub Actions"
        git checkout --orphan latest_branch
        git add -A
        git commit -am "${{ steps.date.outputs.date }}"
        git branch -D Files
        git branch -m Files

    - name: Push
      run: git push -f origin Files
